Resources in a data communication network, such as a Network Interface Card (NIC), may require various housekeeping tasks to be performed at times, such as startup or after errors, or simply periodically. These tasks may include initialization, clearing registers or buffers, enabling or disabling associated functions, communicating status updates, etc. Allowing multiple cores in a multi-core environment to independently perform these housekeeping tasks may result in inefficiencies and errors where one core completes initialization and attempts to use the resource while a second core is still initializing the resource.